Transmission of digital signals over a public "analog" telephone network is a commonly performed operation in telecommunications. A serial modulator-demodulator (modem) is typically used in conjunction with a device such as a universal asynchronous receiver-transmitter (UART) which performs parallel-to-serial and serial-to-parallel conversion of digital data signals transmitted and received over the network.
An industry standard UART is the "Asynchronous Communications Element" manufactured by Western Digital Corporation having the identifying number 8250. Because this UART is found in a wide variety of applications, there is a large base of software programs extant which depend on the configuration internal to the UART. These programs execute on a microprocessor external to the UART which controls the functions performed by the UART. Any modifications to the structure of the UART which would necessitate changes in the software are therefore to be avoided, if possible.
However, since the time that the standard 8250 UART was introduced, a number of desirable features have been recognized as unavailable on the 8250 UART. Thus an enchanced UART compatible with the 8250 standard has a demonstrated need.
Among the features of demonstrated utility is a UART compatible with the 8250 which is selectably operable in a synchronous mode. In a synchronous mode there is no need for start or stop bits and accordingly data is received on every clock cycle. Asynchronous operation of a UART is relatively slow because it requires start-stop bits which impose an overhead on the transmission and because of the time involved in "handshaking" and "framing" operations. For the same bit speed asynchronous transmission transmits about 33% fewer characters than synchronous transmission.
Another feature of demonstrated utility is an 8250-compatible UART which has transmit and receive first-in, first-out (FIFOs) used as elastic buffers. A receive-side elastic buffer compensates for variations in the speed at which data is received by the UART and the speed at which the data can be transferred to processing devices and/or storage devices. In prior art UARTs, the user had to carefully monitor reception of data and assure that reception of data did not "overrun" its transfer and/or storage. Such monitoring imposed additional programming and time penalties. Similarly, a transmit-side elastic buffer compensates for variations in the speed at which data can be transmitted over the network. Particularly in asynchronous communication, data transmission requires complex protocol handshaking, and delays are inevitable. If an elastic buffer is not available, reception of data by the UART for transmission must be monitored and the programs must cause cessation of data processing prior to transmission. This imposes undesirable complexity in the software as well as time penalties in processing.
Another feature desired in a 8250-compatable UART is a mechanism for identifying as "special" characters received over the network which does not rely on extensive software monitoring of the received characters as occasioned by prior art UARTs. Such monitoring is time-consuming and requires the preparation of special programs. Another desirable feature, which is currently available through software, is detecting parity errors in the received characters.